草庐IT

java - 在java中的64位机器上运行32位dll

全部标签

ruby - Foo < Ruby 中的 Bar

我最近发现您可以检测一个类/模块是否包含另一个类/模块。例如Array是Enumerable所以你可以这样做ArrayString但是不可枚举String这里究竟发生了什么?这种语法在ruby​​中如何工作? 最佳答案 以下是获取类的祖先链的方法:>>Array.ancestors=>[Array,Enumerable,Object,Kernel,BasicObject]如果一个类是祖先链中另一个类的“左”,则>>Arraytrue>>Arraytrue如果一个类不是“左”类或祖先链中的另一个类,则>>Enumerablefalse

ruby - 如何在不转换为不同编码的情况下替换 Ruby 中的 UTF-8 错误?

为了将字符串转换为UTF-8并替换所有编码错误,您可以这样做:str.encode('utf-8',:invalid=>:replace)唯一的问题是如果str已经是UTF-8则它不起作用,在这种情况下仍然存在任何错误:irb>x="foo\x92bar".encode('utf-8',:invalid=>:replace)=>"foo\x92bar"irb>x.valid_encoding?=>false引用RubyDocs:Pleasenotethatconversionfromanencodingenctothesameencodingencisano-op,i.e.therec

ruby - 使用 mongodb/mongoid 运行时更改模型

我必须在mongoid模型中添加几个字段,我知道MongoDB没有迁移,但如果我继续而不删除数据库,使rails完全“重新生成”数据库,它不会显示或使用新的领域!去这里最好的方法是什么?有比删除/重新打开mongodb更软的东西吗?提前致谢卢卡 最佳答案 一般来说,应该可以在运行时用新字段更新旧文档。MongoDB中不需要迁移。您可能想编写rake任务以使用新字段和默认值更新旧文档。您可以通过检查那些默认值为nil的新字段来找到这些文档。更新简单风格:如果您使用默认值定义一个新字段,只要您设置了一个新值,就应该始终使用该值:应用程序

ruby-on-rails - 无法运行 rails 命令。你的 Ruby 版本是 2.2.1,但是你的 Gemfile 指定了 2.1.4

我无法运行服务器railss或无法制作Controller等。我该怎么办?终端显示以下错误:YourRubyversionis2.2.1,butyourGemfilespecified2.1.4 最佳答案 运行ruby-v然后你会看到你已经安装了ruby​​2.2.1,但是你的Gemfile中的第一行指定使用ruby2.1.4。更改Gemfile中的第一行以指定ruby2.2.1或安装ruby2.1.4如果你想使用以前的版本ruby​​2.1.4。然后首先使用rvmlist命令检查它是否已经安装。如果它在那里那么你需要运行rvmus

ruby - ruby 中的线程安全外部进程,以及检查退出状态

我想在Ruby中运行一段调用外部程序的线程安全脚本,然后检查该外部程序的退出状态。最好的方法是什么?到目前为止,我一直在检查$?,但我认为我遇到了与程序其他部分的竞争条件。下面是一些示例代码:Thread.newdo`external_program`if$?.exitstatus==0#itworked.else#itdidn'twork.endend理想情况下,我会做类似的事情Process.new(`external_program`).exitstatus因此exitstatus与that进程密不可分,而不是恰好完成的最后一个进程。有什么办法吗? 最

Ruby:1.9 中的 parsedate 去哪儿了?

我相信旧版本的ruby​​带有一个parsedate模块,允许最佳猜测传递日期/时间字符串。这似乎不在ruby​​1.9中——其他地方是否有等效的功能? 最佳答案 我自己也有同样的问题。查看1.8源代码parsetime使用另一个仍然存在的模块。以下内容适用于我使用从FreeBSD上的端口构建的Ruby1.9。require'date/format'require'time'text="TueJun2811:582011"array=Date._parse(text,false).values_at(:year,:mon,:mday

ruby-on-rails - 如何访问 Capistrano 中的服务器特定选项?

我正在尝试将Capistrano配置为在两台不同的服务器上执行相同的任务,每台服务器都有不同的凭据。我想做一些类似的事情:namespace:deploydorole:db,"192.168.1.1",:credentials=>"db1.yml"role:db,"192.168.1.1",:credentials=>"db2.yml"task:mytask,:roles=>:dbdocredentials=YAML.load_file(something)...这可能吗?为了访问当前服务器配置,我应该用什么替换something? 最佳答案

ruby - 如何将类名作为变量传递给ruby中的另一个类

我正在尝试学习用ruby​​创建一个多类程序。我编写了一个引擎类和一些其他类,如城市、街道等,但在将类名作为变量传递给其他类时遇到了问题。下面的代码抛出错误:“City.rb:15:in'intro':undefinedlocalvariableormethodgame'for#(NameError)”。我在某种程度上理解这个问题,但我认为这个城市不需要知道任何关于游戏对象,我认为它只需要获取它并将其传回即可。但表面上我对如何在类之间传递变量(尤其是类名)有误解。我的设计有什么问题?#Game.rbrequire'./City.rb'classEnginedefinitialize(c

ruby-on-rails - Hartl 教程中的 bundle exec rspec spec/requests/static_pages_spec.rb 不起作用

我正在按照MichaelHartl的ruby​​onrails教程测试示例应用程序(3.2.1测试驱动开发),但在键入bundleexecrspecspec/requests/static_pages_spec.rb后出现以下错误/home/rahul/.rvm/gems/ruby-2.0.0-p247@railstutorial_rails_4_0/gems/selenium-webdriver-2.0.0/lib/selenium/webdriver/common/zipper.rb:1:in`require':cannotloadsuchfile--zip/zip(LoadErr

ruby - 为什么某些 Ruby 代码在 2.53GHz 上的运行速度是在 2.2GHz Core 2 Duo 处理器上的两倍?

(本题试图找出为什么一个程序在不同的处理器上运行会有所不同,所以它与编程的性能方面有关。)以下程序在配备2.2GHzCore2Duo的Macbook上运行需要3.6秒,在配备2.53GHzCore2Duo的MacbookPro上运行需要1.8秒。这是为什么?这有点奇怪……当CPU的时钟速度仅快15%时,为什么要加倍速度?我仔细检查了CPU仪表,以确保2个内核中没有一个处于100%使用率(以便查看CPU是否忙于运行其他东西)。难道是因为一个是MacOSXLeopard,一个是MacOSXSnowLeopard(64位)?两者都运行Ruby1.9.2。pRUBY_VERSIONpRUBY_